import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.kartavale.enums.CodigoDeArea;
import br.com.kartavale.enums.Produto;
import br.com.kartavale.enums.StatusDoContrato;
import br.com.kartavale.enums.TipoDeTelefone;
import br.com.kartavale.enums.UnidadeFederativa;
import br.com.kartavale.jpa.JPAUtil;
import br.com.kartavale.modelo.Cliente;
import br.com.kartavale.modelo.Contrato;
import br.com.kartavale.modelo.Telefone;

public class TesteContrato {
	public static void main(String[] args) {
	
		EntityManager em = JPAUtil.getEntityManager();
		
		em.getTransaction().begin();
		
		Cliente cliente = new Cliente();
		cliente.setNomeFantasia("BISTEK SUPERMERCADOS");
		cliente.setRazaoSocial("BISTEK & BISTEK LTDA");
		cliente.setCnpj("19.223.456/0001-03");
		cliente.setEmail("atendimento@bistek.com.br");
		cliente.setPessoaParaContato("CARLOS ALBERTO GIASSI");
		cliente.getEndereco().setLogradouro("AV. PRESIDENTE KENNEDY");
		cliente.getEndereco().setNumero(3234);
		cliente.getEndereco().setComplemento("ESQUINA COM FARIA LIMA");
		cliente.getEndereco().setBairro("KOBRASOL");
		cliente.getEndereco().setCidade("SÃO JOSÉ");
		cliente.getEndereco().setUnidadeFederativa(UnidadeFederativa.SANTA_CATARINA);
		cliente.getEndereco().setCep("88780-098");
	
		
		Telefone tel1 = new Telefone();
		tel1.setTipoDoTelefone(TipoDeTelefone.COMERCIAL);
		tel1.setCodigoDeArea(CodigoDeArea.COD48);
		tel1.setNumeroDoTelefone("3954-7000");
		cliente.getTelefones().add(tel1);
		
		Telefone tel2 = new Telefone();
		tel2.setTipoDoTelefone(TipoDeTelefone.CELULAR);
		tel2.setCodigoDeArea(CodigoDeArea.COD48);
		tel2.setNumeroDoTelefone("9162-7010");	
		cliente.getTelefones().add(tel2);
		
		Contrato contrato = new Contrato();
		contrato.setCliente(cliente);
		contrato.setProduto(Produto.AMBOS);
		contrato.setStatusDoContrato(StatusDoContrato.TEF);
		
		em.persist(contrato);
		em.getTransaction().commit();
		
		Query query = em.createQuery("SELECT c FROM Contrato c");
		List<Contrato> contratos = query.getResultList();
		
		for(Contrato listaContratos: contratos) {
			System.out.println("\n");
			System.out.println("-------------------------------------------------------------------");
			System.out.println(listaContratos.getCliente().getNomeFantasia());
			System.out.println(listaContratos.getCliente().getRazaoSocial());
			System.out.println(listaContratos.getCliente().getCnpj());
			System.out.println(listaContratos.getCliente().getEndereco().getLogradouro());
			System.out.println(listaContratos.getCliente().getEndereco().getNumero());
			System.out.println(listaContratos.getCliente().getEndereco().getComplemento());
			System.out.println(listaContratos.getCliente().getEndereco().getBairro());
			System.out.println(listaContratos.getCliente().getEndereco().getCidade());
			System.out.println(listaContratos.getCliente().getEndereco().getUnidadeFederativa());
			System.out.println(listaContratos.getCliente().getEndereco().getUnidadeFederativa().getDescricao());
			for(Telefone telefones: listaContratos.getCliente().getTelefones()) {
				System.out.println(telefones.getTipoDoTelefone() + 
						" (" + telefones.getCodigoDeArea().getDescricao() + ") " + telefones.getNumeroDoTelefone());
			}
			
			System.out.println(listaContratos.getId());
			System.out.println(listaContratos.getProduto());
			System.out.println(listaContratos.getStatusDoContrato());
		}
		
		
		em.close();
				
	}	
	

}
